document.getElementById('extractBtn').addEventListener('click', async () => {
  try {
    const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
    const statusDiv = document.getElementById('status');
    const extractBtn = document.getElementById('extractBtn');
    
    extractBtn.disabled = true;
    statusDiv.textContent = '正在提取内容...';
    
    chrome.tabs.sendMessage(tab.id, { action: "extract" }, async (response) => {
      if (!response) {
        statusDiv.textContent = '提取失败，请刷新页面后重试';
        extractBtn.disabled = false;
        return;
      }

      if (!response.title || !response.content) {
        statusDiv.textContent = '提取的内容不完整，请在其他页面尝试';
        extractBtn.disabled = false;
        return;
      }

      try {
        statusDiv.textContent = '正在生成文档...';
        
        // 读取模板文件
        const templateUrl = chrome.runtime.getURL('template.docx');
        console.log('Template URL:', templateUrl);
        
        // 直接使用 fetch 加载文件
        const templateResponse = await fetch(templateUrl);
        if (!templateResponse.ok) {
          throw new Error(`模板文件加载失败: ${templateResponse.status}`);
        }
        const templateArrayBuffer = await templateResponse.arrayBuffer();
        
        // 使用 PizZip 加载文档
        const zip = new PizZip(templateArrayBuffer);
        
        // 创建 Docxtemplater 实例
        const doc = new Docxtemplater(zip, {
          paragraphLoop: true,
          linebreaks: true,
          nullGetter() { return ''; }
        });
        
        // 设置模板变量
        doc.setData({
          '项目名称': response.title,
          '信息内容摘要': response.content,
          '报告时间': response.reportTime
        });

        try {
          // 渲染文档
          doc.render();
          
          // 获取生成的文档
          const generatedDoc = zip.generate({
            type: 'blob',
            mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
            compression: 'DEFLATE'
          });

          // 下载文件
          const url = URL.createObjectURL(generatedDoc);
          chrome.downloads.download({
            url: url,
            filename: `${response.title.replace(/[<>:"/\\|?*]/g, '_')}.docx`,
            saveAs: true
          }, (downloadId) => {
            URL.revokeObjectURL(url);
            if (chrome.runtime.lastError) {
              statusDiv.textContent = '文档下载失败：' + chrome.runtime.lastError.message;
            } else {
              statusDiv.textContent = '文档生成成功！';
            }
            extractBtn.disabled = false;
          });

        } catch (error) {
          console.error('渲染文档时出错：', error);
          statusDiv.textContent = '渲染文档时出错：' + error.message;
          extractBtn.disabled = false;
        }
      } catch (error) {
        console.error('生成文档时出错：', error);
        statusDiv.textContent = '生成文档时出错：' + error.message;
        extractBtn.disabled = false;
      }
    });
  } catch (error) {
    console.error('操作失败：', error);
    statusDiv.textContent = '操作失败：' + error.message;
    extractBtn.disabled = false;
  }
}); 